The client/server computing model implemented over a network has been universally adopted. In this model, requests issued by the software applications of client nodes are sent to one or more connected servers. Once processed by the server the requested information is returned to the clients. This model is the one of the Internet where clients are web browsers and servers are web servers including many specialized servers such as the mail servers.
This model is also the one of many service providers generally operating large computing resources to serve a community of clients, end-users of the software applications running on the computing resources of the service provider, possibly over a mix of private and public networks including the Internet. Examples of such providers are the global distribution systems (GDSs) providing travel services to the whole travel industry including airlines, traditional and online travel agencies (e.g., for travel planning and reservation) and airports (e.g., for departure control and passengers check-in).
Software systems in general are frequently updated over their life cycle. Even after completion of the development phase, when systems are in production, the software applications continue to evolve to apply corrections and improve them with the addition of new features. Also, changes may have to be brought in order to fully take advantage of the performances of a new type of machine or because the operating system is new, has evolved or is different.
In the client/server model, to roll out a new version of server side application, the standard practice is that new version must be backward compatible. Hence, whichever version of the client application is in use at any node, the new server, once deployed is immediately able to handle the client requests and deliver the requested information in a compatible format.
This ideal scheme applies, to some extent, to the Internet where web servers need to be compatible with all the existing web browsers used by innumerable clients of the world-wide public network. This is not completely true though. It is well known that not all web browser brands react exactly in the same way and that many servers are supporting in practice only the most recent versions of the client applications. For example, with Internet Explorer (IE), the web browser by Microsoft Corporation, the most used browser world-wide, many recent server applications currently support only version 5 (IE5) and above. Indeed, client graphic user interface (GUI) may be seriously impaired when browser older versions, or browser brands that are not supported, request and receive information from an upgraded server.
Maintaining backward compatibility, even though it is only partially achievable in practice, has a high cost. Server new application must cope in one way or another with all the options, features, incompatibilities and flaws of all the client versions to be supported in the field. This has a high cost during the development phase requiring more time and skills to develop the new server application and possibly requiring more memory and faster hardware resources to be implemented. Even more importantly, the number of server/client browser combinations to check is growing rapidly up to a point where testing phase may require an impossible amount of resources (machines and manpower) to put in place to allow an exhaustive testing of all the combinations within a reasonable amount of time.
Above is true even though a web browser is said to be a ‘thin client’, i.e., a client actually performing only a limited share of the work to be done between server application and client application to have requested job done. Indeed the prime task of a web browser is to display the pages returned by the web server through a GUI.
With the client/server systems that are not publicly accessible, like the GDSs mentioned above, which generally work only with affiliated clients (e.g., airlines, travel agencies, airports, etc.) the client application may rather need to be a so-called ‘rich client’ that has to perform a much greater part of the whole work to be shared between server and client. This may be required because the available bandwidth between them is too limited to allow client application soliciting the server for each task to be done. With GDSs this is for example the case of client application systems used in airports for controlling plane departure and check-in of the passengers, a work that must be expedited in a rush time when passengers are boarding. Indeed, small airports may still have limited external communication resources. Also, airport computing resources are owned and under the control of the airport authorities requiring approval, thus time, to be deployed and updated even though the check-in application is used by the airlines affiliated to the GDS.
Hence, when client application is a rich client, devised to perform itself a larger share of the work, the problem of having backward compatible servers may even be more difficult, if not impossible, to achieve than with a thin client. Indeed, the number of options and features of all the versions of the rich client applications to be supported is potentially much larger thus greatly exacerbating the problems mentioned above regarding development and testing phases of the server application.
U.S. Pat. No. 5,732,275 discloses a method and apparatus for managing and automatically updating software programs. This document does not address the problem of adapting all the client software applications of a network prior to the deployment of a new non-backward compatible version of a server software application. According to this prior art, it is assumed that the client application is self-capable of downloading a software version from a shared memory. This restricts the scope of application of this technology whereas the present invention can apply to a network including pretty dumb terminals with limited software resources.
WO01/69382A discloses a method for initial configuration of a client device. According to this publication, a new template is downloaded to initially configure the client application. This template is intended to adapt the client application to a new format of data organization of the server and not to a new version of the server software application itself.
In view of the above it is thus desirable to allow, in a client/server environment, a deployment of new versions of server applications that need not to be backward compatible.
Further objects, features and advantages of the present invention will become apparent to the ones skilled in the art upon examination of the following description in reference to the accompanying drawings. It is intended that any additional advantages be incorporated herein.